package cn.itcast.nems.product.dao.mapper;

import cn.itcast.nems.common.bean.KeyValue;
import cn.itcast.nems.product.dao.entity.ProductSnapshot;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 产品快照 Mapper 接口
 * </p>
 *
 * @author liyong
 * @since 2023-08-31
 */
@Mapper
public interface ProductSnapshotMapper extends BaseMapper<ProductSnapshot> {

    /**
     * 根据产品ID获取对应的最新的快照ID
     *
     * @param productIds 产品ID
     * @return 产品ID-快照ID
     */
    List<KeyValue<Long, String>> selectSnapshotIds(@Param("productIds") Set<Long> productIds);

    /**
     * 修改产品快照的最近标记
     *
     * @param productId  产品ID
     * @param latestFlag 最新标记
     */
    void updateLatestFlag(@Param("productId") Long productId, @Param("latestFlag") Boolean latestFlag);
    
    /**
     * 
     * 功能描述：获取指定产品当前（latest）的快照ID
     *
     * @param productId 产品ID
     * @return 快照ID
     * 
     * @author 刘曙
     *
     * @since 2023年9月21日
     *
     * @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
     */
    String selectLatestProductSnapshotId(@Param("productId") Long productId);
}
